package controllers;

import java.sql.Date;
import java.sql.Timestamp;

import models.*;
import play.data.Form;
import play.mvc.Controller;
import play.mvc.Result;
import views.html.*;

public class Propositions extends Controller {

	public static Result add() {
		final Form<Proposition> propositionForm = form(Proposition.class)
				.bindFromRequest();

		if (propositionForm.hasErrors()) {
			flash("error", "non,non,il faut saisir autre choses!");
		} else {
			final Proposition proposition = propositionForm.get();
			proposition.save();

		}

		return ok(nouvelleproposition.render(
				Utilisateur.find.where().eq("pseudo_utilisateur", session("pseudo_utilisateur")).findUnique(),
				"ok,nouvelle proposition", 
				Categorie.find.orderBy("libelle_categorie").findList(),
				Article.find.fetch("category").orderBy("libelle_article").findList(), 
				Proposition.findFirst()));

	}

	public static Result soumettre(Long id) {

		Proposition proposition = Proposition.findbyId(id);
		proposition.changerEtat(2);

		return ok(enregistrement.render("ok,proposition number X",
				Article.find.fetch("category").orderBy("libelle_article")
						.findList(), Proposition.findFirst(),
						Utilisateur.find.where().eq("pseudo_utilisateur", session("pseudo_utilisateur")).findUnique()
						));
	}

	public static Result formulaire() {
		Timestamp st = new Timestamp(System.currentTimeMillis());
		Date date_jour = new Date(st.getTime());
		Long id = (long) 5;
		return ok(formulaireproposition.render(
				Utilisateur.find.where().eq("pseudo_utilisateur", session("pseudo_utilisateur")).findUnique(),
				"ok,proposition number X", id, date_jour));
	}

	public static Result enregistre() {
		return ok(enregistrement.render("ok,proposition number X",
				Article.find.fetch("category").orderBy("libelle_article")
						.findList(), Proposition.findFirst(),
						Utilisateur.find.where().eq("pseudo_utilisateur", session("pseudo_utilisateur")).findUnique()
						
						));

	}

	public static Result list() {

		return ok(listProposition.render(
				"ok,toutes les propositions", Categorie.find.orderBy("libelle_categorie")
						.findList(),
				Article.find.fetch("category").orderBy("libelle_article")
						.findList(), Proposition.find.orderBy("id").findList(),
						Utilisateur.find.where().eq("pseudo_utilisateur", session("pseudo_utilisateur")).findUnique()));
	}

	public static Result afficher(Long id) {
		Proposition proposition = Proposition.findbyId(id);
		return ok(enregistrement.render(
				"ok,tous les produits de cette proposition", Article.find
						.fetch("category").orderBy("libelle_article")
						.findList(), proposition,
						Utilisateur.find.where().eq("pseudo_utilisateur", session("pseudo_utilisateur")).findUnique()));
	}

}
